# @Time : 2025-01-06 17:38
# @Author : Fioman 
# @Phone : 13149920693
"""
MongoDb数据库的一些配置,包括表名之类的,目前只有表名,后续可能还有其他
"""
from enum import Enum
from typing import Dict


class TableName(Enum):
    """
    数据库表名枚举,每次创建一个表的时候,先添加到这个枚举中
    一个表对应一个python文件,这个python文件就是表名
    """
    userinfos = "用户信息表"
    eapParams = "Eap参数表"
    sizeLayouts = "尺寸和拼层排板表"
    workingInfos = "当前作业信息表"
    cbjZmcParams = "裁切机各个轴参数表"
    cbjCutParams = "裁切机切割参数表"
    shiftRecords = "当班生产记录"
    orders = "生产工单表"


class TableRegister:
    """
    表明注册类,每个表都需要注册进来
    """
    _tables = {}  # 需要创建和初始化的所有的表名称

    @classmethod
    def register_table(cls, tableName, initData):
        """
        注册表,表明加上初始化数据
        :param tableName:
        :param initData:
        :return:
        """
        cls._tables[tableName] = initData

    @classmethod
    def get_all_tables(cls) -> Dict:
        """
        获取注册过的所有的表数据,返回的是字典,键值对 = {tableName:initData}
        :return:
        """
        return cls._tables


def re_init_table(tableName, initData):
    """
    重新初始化表内容
    :param tableName:表明
    :param initData: 初始化的内容
    :return:
    """
    from db_tool.db_handler import DbHandler
    db = DbHandler()
    # 字段更改之后,重新创建新表,丢弃掉旧表,简单实现,先删除旧表,再插入新表
    db.re_init_data(tableName, initData)
    result = db.get_data_list(tableName)
    if result.state:
        print(f"表 {tableName} 重新创建成功,内容: {result.data}")
    else:
        print(f"表 {tableName} 重新创建失败,原因: {result.info}")
